package com.ytzl.gotrip.rpc.api;

import com.ytzl.gotrip.model.GotripUser;

public interface RpcTokenService {
   /** 创建token token:[MOBILE|PC]-userCode(md5)-userId-yyyyMMddHHmmss-浏览器标识
    pc端 2小时 移动端 不失效*/
    /**
     * 生成token
     * @param gotripUser 用户信息
     * @param userAgent 浏览器标识
     * @return token令牌
     */
    public String generateToken(GotripUser gotripUser, String userAgent);

    /**
     * 保存token到redis
     * @param token redis的key
     * @param gotripUser reids的值 用户信息
     */
    public void saveToken(String token, GotripUser gotripUser);

    /**
     * 验证token是否有效
     * @param token token令牌
     * @param userAgent 浏览器内核标识
     * @return 验证结果
     */
    public boolean verifyToken(String token, String userAgent);

    /**
     * 删除token
     * @param token
     */
    public void removeToken(String token);

    /**
     *
     * 根据token查询用户信息
     * @param token
     * @param userAgent 浏览器标识
     * @return 用户信息
     */

    public GotripUser getGotripUser(String token, String userAgent) throws Exception;
    /**
     * 替换token
     * @param token token
     * @param userAgent 浏览器标识
     */
    public String replaceToke(String token, String userAgent) throws Exception;
}
